from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 初始化浏览器驱动
driver = webdriver.Chrome()  # 如果使用Firefox，替换为webdriver.Firefox()

# 设置超时时间，例如5秒
timeout = 5

# URL
url = "https://www.example.com"

# 让浏览器打开URL并等待页面完全加载
driver.get(url)
wait = WebDriverWait(driver, timeout)  # 创建WebDriverWait实例

# 使用ExpectedConditions等待元素存在
element_to_wait = (By.XPATH, '//*[@id="your-element-id-or-class"]')  # 替换为实际的元素选择器
wait.until(EC.presence_of_element_located(element_to_wait))  # 等待元素可见

# 现在元素已经存在，可以进行交互操作
element = driver.find_element(*element_to_wait)
element.click()

# 其他等待条件，如元素可见、文本变化等：
# wait.until(EC.visibility_of_element_located(element_to_wait))
# wait.until(EC.text_to_be_present_in_element(element_to_wait, 'expected-text'))

# 关闭浏览器
driver.quit()